プロセス
プロセスは、メッセージパッシングを通じて通信を行う能力を持っており、ネットワーク内でメッセージの受信と送信を行うことができます。さらに、プロセスは他のプロセスを新たにインスタンス化する能力も持ち、ネットワークの計算基盤を拡張します。このネットワーク内での動的なデータの伝達と相互作用の方法は「ホログラフィック状態」と呼ばれ、ネットワークの共有および永続的な状態を支えるものです。

aosでプロセスを構築する際、handlersを追加することができます。これらのハンドラは、Handlers.add関数を呼び出し、「name」、「match」関数、および「handle」関数を渡すことで追加できます。

コアモジュールには、ハンドラ関数に注入されるヘルパーライブラリが含まれており、このライブラリはaoと呼ばれます。
{
env = {
Process = {
Id = "5WzR7rJCuqCKEq02WUPhTjwnzllLjGu6SA7qhYpcKRs",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {...}
},
Module = {
Id = "UAUszdznoUPQvXRbrFuIIH6J0N_LnJ1h4Trej28UgrE",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {..}
}
},
id = "5WzR7rJCuqCKEq02WUPhTjwnzllLjGu6SA7qhYpcKRs",
isTrusted = "function: 0x5468d0",
result = "function: 0x547120",
send = "function: 0x547618",
spawn = "function: 0x5468b0"
}このaoヘルパーで注目すべき主な関数は次のとおりです。
- ao.send(Message) - メッセージをプロセスに送信します
- ao.spawn(Module, Message) - 新しいプロセスを作成します
Ethereumで署名されたプロセスまたはモジュール
aoのProcessまたはModuleにおいて、ANS-104 DataItemがEthereumのキーを使用して署名された場合、
それぞれenv.Process.Ownerまたはenv.Module.Ownerフィールドの値は、署名者のEIP-55準拠のEthereumアドレスになります。
例えば:0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359
ao.send Example
ao.send({
Target = Chatroom,
Action = "Broadcast",
Data = "Hello from my Process!"
})ao.spawn Example
ao.spawn(ao.env.Module.Id, {
["Memory-Limit"] = "500-mb",
["Compute-Limit"] = "900000000000000000"
})ao.env
NOTE:
ao.envis important context data that you may need as a developer creating processes.
The ao.env property contains the Process and Module Reference Objects
env = {
Process = {
Id = "5WzR7rJCuqCKEq02WUPhTjwnzllLjGu6SA7qhYpcKRs",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {...}
},
Module = {
Id = "UAUszdznoUPQvXRbrFuIIH6J0N_LnJ1h4Trej28UgrE",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {..}
}
}ProcessとModuleの両方は、aoデータプロトコルの属性を含んでいます。
まとめ
ネットワーク内のプロセスは、メッセージパッシングを通じて通信し、新しいプロセスを作成することで、共有および永続的なデータの「ホログラフィック状態」に貢献します。開発者は、aosを使用して特定のname、match、およびhandle関数を用いてHandlers.add関数でハンドラを追加することでプロセスを構築できます。コアモジュール内のaoヘルパーライブラリは、このプロセスを支援し、メッセージを送信するためのao.sendや、新しいモジュールを作成するためのao.spawn、そして重要なao.envプロパティを提供します。ao.envには、プロセスとモジュールに関する重要な情報が含まれています。aoデータプロトコルは、これらの要素の構造と属性を定義しています。